package
{
	import code.app.AppCtrlList;
	import code.app.AppData;
	import code.app.AppView;
	import code.main.controller.event.EventManager;
	import code.main.controller.event.EventName;
	import code.main.controller.event.MyEvent;
	import code.main.modle.command.LoginCmd;
	import code.main.modle.lang.Language;
	import code.main.modle.staticData.StaticInfoCtrl;
	
	import com.yy.base.App;
	import com.yy.manager.UiManager;
	import com.yy.tools.menu.Menu;
	
	import flash.display.Sprite;
	import flash.events.ContextMenuEvent;
	import flash.events.Event;
	import flash.ui.ContextMenuItem;
	
	/**
	 *游戏主程序 
	 * @author YY
	 * 
	 */
	public class Main extends Sprite
	{
		private var _initCmpCB:Function;//初始化完成 回调函数
		public function Main()
		{
			super();
		}
		
		/**
		 *初始化 主程序
		 * 
		 */
		public function init(cb:Function):void {
			_initCmpCB = cb;
			new StaticInfoCtrl().start();
			new LoginCmd(loginSucCb);
		}
		/**
		 *登陆完毕 
		 * 
		 */
		private function loginSucCb():void {
			initCmpReturn();
		}
		
		/**
		 *初始化完毕返回加载器逻辑 
		 * 
		 */
		private function initCmpReturn():void {
			if(Boolean(_initCmpCB)) {
				_initCmpCB();
			}
		}
		
		
		/**
		 *开始程序 
		 * 
		 */
		public function run():void {
			trace("######游戏开始#######");
			//注册版本号
			var verMenu:Menu = new Menu(this);
			verMenu.addStrMenu(AppData.APP_VERSION);
			//初始化视图 (初始化层)
			AppView.getInstance().init(App.appStage, this);
			//初始化管理器
			UiManager.getDragManager().parent = AppView.getInstance().mouseLayer;
//			UiManager.getMouseManager().parent = AppView.getInstance().mouseLayer;
			UiManager.getPopUpManager().parent = AppView.getInstance().popupLayer;
			UiManager.getToolTipManager().parent = AppView.getInstance().tipLayer;
			UiManager.getToolTipManager().popTipsParent = AppView.getInstance().popupLayer;
//			//控制器开始运行
			AppCtrlList.getInstance().appCtrl.start();
		}
	}
}